package day12;

import java.util.*;

/**
 * 二进制插入
 */

/**
 * 给定两个32位整数n和m，同时给定i和j，将m的二进制数位插入到n的二进制的第j到第i位,
 * 保证n的第j到第i位均为零，且m的二进制位数小于等于i-j+1，其中二进制的位数从0开始由低到高。
 */
public class BinInsert {
    public static void main(String[] args) {
        System.out.println(binInsert(1024, 19, 2, 6));
    }
    public static int binInsert(int n, int m, int j, int i) {
//        // write code here
//        String s = Integer.toBinaryString(m);
//        String s1 = Integer.toBinaryString(n);
//        StringBuilder stringBuilder = new StringBuilder();
//        stringBuilder.append(s1);
//        String end = String.valueOf(stringBuilder.replace(j-1,i-1,s));
//        int num = (int)Integer.getInteger(end);
        int put = m << j;
        //保证n的第j到第i位均为零,直接异或就行了
        int end = n|put;

        return end;
    }
}